#include "head.h"

// 顺序表的创建：
void Init_Sql_List(u_f_data * L)
{
    L->len=0;
}

//顺序表任意位置插入
void pos_insert_list(u_f_data * L  , f_data data)
{
    //安全判断
    if(NULL == L)
    {
        ERRLOG("顺序表为NULL\n");
        return ;
    }
    if(MAX <= L->len)
    {
        printf("顺序表已满\n");
    }
    //插入
    L->data[L->len]=data;
    //迭代
    L->len++;
    return ;
}

//任意位置删除
void pos_del_list(u_f_data * L , int index)
{
    //安全判断
    if(NULL == L)
    {
        printf("顺序表为NULL");
        return ;
    }
    if(0 ==L->len)
    {
        printf("顺序表为空");
        return ;
    }
    int num=find_by_name(L,index);
     if (num +1>= L->len - 1) // 尾删
    {
        L->len--;
        return ;
    }

    for (size_t i = num; i < L->len; i++) // 中间删除
    {
        L->data[i ] = L->data[i+1];
    }
    L->len--;
}

//顺序表的查找
int find_by_name(u_f_data * L , int index)
{
    if(NULL ==L)
    {
        printf("顺序表为空\n");
        return EOF;
    }
    if(0 == L->len)
    {
        printf("顺序表内无内容\n");
        return EOF;
    }
    //第一方式
    // for(int i=0;i<L->len;i++)
    // {
    //     if(!strcmp(L->data[i].name,name))
    //     {
    //         printf("找到了 index=%d\n",i+1);
    //         return i;
    //     }
    // }
    // printf("没有找到\n");
    // return EOF;

    //第二种方式
    for(int i=0;i<L->len;i++)
    {
        if(index == L->data[i].id)
        {
            return i;
        }
    }
    return EOF;
}

// 顺序表的遍历：
void printf_Sql_List(u_f_data * L)
{
    if(NULL == L)
    {
        printf("顺序表为NULL\n");
        return ;
    }
    if(0 == L)
    {
        printf("顺序表为空\n");
        return ;
    }
    for(int i=0;i<L->len;i++)
    {
        printf("班次：%d\t机型：%s\t起点站：%s\t终点站：%s\t起飞时间：%d:%d\t到达时间：%d:%d\t飞行时间：%s\t票价：%d\t额定载客量：%d\t剩余座位：%d\t是否起飞：%c\n", L->data[i].id, L->data[i].flighttype, L->data[i].startcity, L->data[i].arrivecity, L->data[i].starttime[0], L->data[i].starttime[1], L->data[i].arrivetime[0], L->data[i].arrivetime[1], L->data[i].flytime, L->data[i].value, L->data[i].maxNUM, L->data[i].leftbuyersa, L->data[i].whetherfly);
    }
}